<?php
require_once 'Xml.php';
require_once dirname(__FILE__) . '/../Controller.php';
class Models_TeamFrien_Xml_Controller extends Models_TeamFriend_Controller
{
	/** デフォルトＸＭＬファイル名 */
	const XML_FILENAME_DEFAULT =  '/databox/TeamFriend.xml';

	/** XML ファイル名 */
	protected $_strFileName;

	/**
	* XMLファイル形式のデータファイルを読み込む
	* Enter description here ...
	* @param string $strFileName
	*/
	public function loadFromFile( $strFileName='' )
	{
		if ( $strFileName == '' ) {
			$strFileName = dirname( __FILE__ ) . self::XML_FILENAME_DEFAULT;
			$this->_strFileName = $strFileName;
		}
		$objXml = new Lib_Xml;
		$aryDataset = $objXml->loadFromFile( $strFileName, array( self::KEY_LIST ) );
		if ( $aryDataset === FALSE ) {
			$this->_aryDataSet = FALSE;
			return FALSE;
		}
		$this->_aryDataSet = $aryDataset[self::KEY_LIST];

		/***
		 * 不整合IDを抹消する
		*/
		$iCount = count( $this->_aryDataSet );
		$i = 0;
		while ( $i < $iCount ) {
			if ( !isset( $this->_aryDataSet[$i][self::KEY_ID] ) ) {
				unset( $this->_aryDataSet[$i] );
			} else if ( $this->_aryDataSet[$i][self::KEY_ID] == '' ) {
				unset( $this->_aryDataSet[$i] );
			}
			$i ++;
		}
		return $this->_aryDataSet;
	}

	/**
	* XML形式でファイルに保存する
	* Enter description here ...
	* @param string $strFileName
	*/
	public function saveToFile( $strFileName = '')
	{
		if ( $this->_aryDataSet === FALSE ) {
			return FALSE;
		}
		if ( $strFileName == '' ) {
			if ( $this->_strFileName != '' ) {
				$strFileName = $this->_strFileName;
			} else {
				$strFileName = dirname( __FILE__ ) . self::XML_FILENAME_DEFAULT;
			}
		}
		$aryDataset[self::KEY_LIST] = $this->_aryDataSet;
		$objXml = new Lib_Xml;
		$objXml->aryXml = $aryDataset;
		$status = $objXml->saveToFile( $strFileName );
		return $status;
	}

}